﻿using ERP.Common.Results;
using ERP.ERPSystem.HumanResources.Dto;
using ERP.Team.ProductionSystem;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;

namespace ERP.ERPSystem.ProductionSystem
{
    /// <summary>
    /// / 生产系统-主数据-物料产品管理服务接口
    /// </summary>
    public interface IMaterialproductmanagementServices:IApplicationService
    {
        /// <summary>
        /// 添加物料产品管理
        /// </summary>
        /// <param name="materialproductDTO"></param>
        /// <returns></returns>
        Task<int> AddMaterialproductmanagement(MaterialproductDTO materialproductDTO);
        /// <summary>
        /// 获取物料产品管理列表
        /// </summary>
        /// <param name="code">物料编码</param>
        /// <param name="name">物料名称</param>
        /// <param name="page">当前页</param>
        /// <param name="limit">页容量</param>
        /// <returns></returns>
        Task<APIPaging<MaterialproductModel>> GetMaterialproductModel(string? code, string? name, int page = 1, int limit = 3);

        /// <summary>
        /// 根据ID获取物料产品详情
        /// </summary>
        /// <param name="id">物料产品ID</param>
        /// <returns></returns>
        Task<MaterialproductModel> GetMaterialproductById(int id);

        /// <summary>
        /// 更新物料产品管理
        /// </summary>
        /// <param name="materialproductDTO">物料产品DTO</param>
        /// <returns></returns>
        Task<int> UpdateMaterialproductmanagement(MaterialproductDTO materialproductDTO);

        /// <summary>
        /// 删除物料产品
        /// </summary>
        /// <param name="id">物料产品ID</param>
        /// <returns></returns>
        Task<int> DeleteMaterialproductmanagement(int id);

        /// <summary>
        /// 批量删除物料产品
        /// </summary>
        /// <param name="ids">物料产品ID列表</param>
        /// <returns></returns>
        Task<int> BatchDeleteMaterialproductmanagement(List<int> ids);
    }
}
